-- 2022-8-18

--[[ 20.4.2 __newindex元方法

    元方法__newindex与__index类似 不同之处在于前者用于表的更新而后者用于表的查询
    当对一个表中不存在的索引赋值时 解释器就会查找__newindex元方法:如果这个元方法存在 那么解释器就调用它而不执行赋值
    像元方法__index一样 如果这个元方法是一个表 解释器就在此表中执行赋值 而不是在原始的表中进行赋值
    此外 还有一个原始函数允许我们绕过元方法:调用rawset(t,k,v)来等价于t[k]=v 但不设计任何元方法

    组合使用元方法__index和__newindex可以实现Lua语言中的一些强大的结构 例如只读的表 具有默认值的表和面向对象编程中的继承
    在本章中 我们会介绍其中的一些应用 面向对象编程会在后续单独的章节中进行介绍
]]